#include<bits/stdc++.h>
#define endl '\n'
#define mp make_pair
using namespace std;
inline int read(){
    int u=0,v=1;
    char ch=getchar();
    while(!isdigit(ch)){
        if(ch=='-') v=-1;
        ch=getchar();
    }
    while(isdigit(ch)){
        u=(u<<1)+(u<<3)+ch-'0';
        ch=getchar();
    }
    return u*v;
}
void print(int x){
    if(x<0){
        putchar('-');
        x=-x;
    }
    if(x>9) print(x/10);
    putchar(x%10+'0');
}
const int N=1e5+10;
int n,a[N],ans;
bitset<N> vis;
inline int fd(int l,int r,int x){
    int tot=-1;
    while(l<=r){
        int mid=(l+r)>>1;
        if(a[mid]>x&&!vis[mid]){
            tot=mid;
            r=mid-1;
        }
        else l=mid+1;
    }
    return tot;
}
int main(){
    freopen("duel.in","r",stdin);
    freopen("duel.out","w",stdout);
    n=read();
    ans=n;
    for(int i=1;i<=n;i++) a[i]=read();
    stable_sort(a+1,a+1+n);
    for(int i=1;i<n;i++){
        int pos=fd(i+1,n,a[i]);
        if(pos!=-1){
            vis[pos]=1;
            ans--;
        }
    }
    print(ans);
    putchar('\n');
    return 0;
}